function Snake(ele) {
    //保存地图对象
    this.ele = ele
    //蛇节长度
    this.len = 20
    //存蛇
    this.snakeObj = [
        { x: 3, y: 2, color: 'red', ele: null }, //蛇头
        { x: 2, y: 2, color: 'blue', ele: null }, // 蛇的身体
        { x: 1, y: 2, color: 'blue', ele: null } // 蛇的身体
    ]
    this.direction = 'right'

    Snake.prototype.create = function () {
        this.remove()
        //循环遍历创建蛇
        for (let i = 0; i < this.snakeObj.length; i++) {
            // 我 0 1 2 
            // this.snakeObj[i] 每节蛇的信息

            // 1.创建蛇标签对象
            let divObj = document.createElement('div')
            // 2.设置宽度高度坐标颜色
            divObj.style.width = this.len + 'px'
            divObj.style.height = this.len + 'px'
            divObj.style.position = 'absolute'
            divObj.style.left = this.snakeObj[i].x * this.len + 'px'
            divObj.style.top = this.snakeObj[i].y * this.len + 'px'
            divObj.style.background = this.snakeObj[i].color

            //蛇节对象

            this.snakeObj[i].ele = divObj
            // 3.弹出页面展示
            this.ele.appendChild(divObj)
        }
    }
    Snake.prototype.remove = function () {

        // 父.removeChild(子)
        // this.ele.removeChild(子)
        // 子 { x: 3, y :2, color:'red', ele:null} 中的 ele
        // 循环遍历创建蛇
        for (let i = 0; i < this.snakeObj.length; i++) {
            // 单独保存下蛇节对象
            // this.snakeObj[i].ele
            if (this.snakeObj[i].ele) {// 开始没有保存蛇节对象
                // 所以增加判断  当保存了 再移除
                this.ele.removeChild(this.snakeObj[i].ele)
            }
        }
    }
    Snake.prototype.Move = function () {
        //水平动，就是将x轴方向加1
        // 将构造函数中蛇的x数据+1
           // 蛇头  蛇身体1   蛇身体2    蛇身体3
    // 蛇头 上    y - 1
    // 蛇头 下    y + 1
    // 蛇头 左    x - 1
    // 蛇头 右    x + 1

    for(let i = this.snakeObj.length - 1;i>0;i--){
     this.snakeObj[i].x = this.snakeObj[i-1].x
     this.snakeObj[i].y = this.snakeObj[i-1].y
    }
    //判断方向:动蛇头
    switch(this.direction){
        case 'top':
        this.snakeObj[0].y -= 1
        break;
        case 'bottom':
        this.snakeObj[0].y +=1
        break;
        case 'left':
        this.snakeObj[0].x -=1
        break;
        
        case 'right':
        this.snakeObj[0].x +=1
        break;

    }



        // 然后重新创建
        this.create()
    }
}